#!/bin/bash

# 配置部分
TARGET_FILE="./log/log.txt.Info"  # 需监控的文件路径
COMMAND="echo '文件已更新' && ps -axj | head -1; ps -axj | grep server_d | grep -v grep; cat ./log/log.txt.Info | grep device_thread | tail -6"  # 检测到更新后执行的命令
CHECK_INTERVAL=5  # 检查间隔（秒）

# 确保目标文件存在
if [ ! -f "$TARGET_FILE" ]; then
    echo "错误：文件 $TARGET_FILE 不存在！"
    exit 1
fi

# 计算初始文件校验和
LAST_HASH=$(md5sum "$TARGET_FILE" | awk '{print $1}')

echo "开始监控文件: $TARGET_FILE"
echo "检查间隔: ${CHECK_INTERVAL}秒"

while true; do
    # 等待指定的检查间隔
    sleep "$CHECK_INTERVAL"
    
    # 计算当前文件校验和
    CURRENT_HASH=$(md5sum "$TARGET_FILE" | awk '{print $1}')
    
    # 比较校验和
    if [ "$CURRENT_HASH" != "$LAST_HASH" ]; then
        eval "$COMMAND"  # 执行配置的命令
        LAST_HASH="$CURRENT_HASH"  # 更新最后一次校验和
    fi
done
